///******************** NG.Respate(C)  **********************************
//* 产品名称: Respate 科技
//* 文件名称: programlog.c
//* 功能描述: 打印系统日志
//* 程序作者: 雷帕特公司(南宫子萍)
//* 程序版本: V1.1														   
//* 编制日期: 2019/1/29
//* QQ:	2085827949
//**********************************************************************/
#include "laperro.h"



#include <stdio.h>
#include <stdarg.h>
#include <time.h>

/*********************************************************************************
** 函数名称: Lap_openLog
** 功能描述: 打开/创建 系统日志
** 输入参数: path：日志文件的路径	name：信息标识符     
** 输出参数: None.
** 返回参数: return response .
**********************************************************************************/
// char LAP_LOG_NAME[40]={0};
// char LAP_LOG_PATH[80]={0};
FILE* Lap_openLog(const char* path)
{
	FILE* file = NULL;

	if(path==NULL) return NULL;
	file = fopen(path,"a");		// O_WRONLY | O_CREAT | O_APPEND
	if(file == NULL) lap_creatFile(path,NULL);	// 打开失败 创建文件
	else return file;			// 打开成功

	// 重新 打开
	file = fopen(path,"a");		// O_WRONLY | O_CREAT | O_APPEND
	return file;
}


/*********************************************************************************
** 函数名称: lap_openlog
** 功能描述: 打印系统日志
** 输入参数: info：打印信息     
** 输出参数: None.
** 返回参数: return response .
**********************************************************************************/
void Lap_sysLog(FILE* fd,const char *fmt,...)
{
	int ret = 0;
	time_t ntimn;			// 获取时间
	char timebuff[50]={0};	// 格式化时间
	char infobuff[1024]={0};// 格式化字符串

	// 可变参
	va_list ap;
	va_start(ap, fmt);

	// if(fd==NULL) goto err;

	ntimn =time(NULL);		// 获取时间戳
	strftime(timebuff,sizeof(timebuff),"%Y-%m-%d %H:%M:%S",localtime(&ntimn));

	//格式化字符串(system 系统调用)
	// sprintf(strinfo,"echo \"%s  %s[%d]  %s\" >> %s",timebuff,LAP_LOG_NAME,getpid(),info,LAP_LOG_PATH);
	// ret=system(strinfo); 
	// lap_errneg(ret,NULL,"lap_syslog echo err!");//错误检查

	ret += vsprintf(infobuff,fmt,ap);
	fprintf(fd,"%s PID:[%d]  MSG: %s\r\n",timebuff,getpid(),infobuff);
err:
	va_end(ap);
}


/*********************************************************************************
** 函数名称: Lap_openlog
** 功能描述: 打开/创建 系统日志
** 输入参数: path：日志文件的路径	name：信息标识符     
** 输出参数: None.
** 返回参数: return response .
**********************************************************************************/
void Lap_closeLog(FILE* file)
{
	if(file==NULL) return NULL;
	fclose(file);
}


















// 即将淘汰，不可重入


/*********************************************************************************
** 函数名称: lap_openlog
** 功能描述: 打开/创建 系统日志
** 输入参数: path：日志文件的路径	name：信息标识符     
** 输出参数: None.
** 返回参数: return response .
**********************************************************************************/
char LAP_LOG_NAME[40]={0};
char LAP_LOG_PATH[80]={0};
void lap_openlog(const char* path,const char* name)
{
	if(path==NULL)
	{
		printf("lap_syslog path:null");
		return ;
	}
	//创建文件
	lap_creatFile(path,NULL);
	strcpy(LAP_LOG_PATH,path);
	
	if(name!=NULL)
	strcpy(LAP_LOG_NAME,name);
}


/*********************************************************************************
** 函数名称: lap_openlog
** 功能描述: 打印系统日志
** 输入参数: info：打印信息     
** 输出参数: None.
** 返回参数: return response .
**********************************************************************************/
void lap_syslog(const char *info)
{
	int ret=-1;
	
	char strinfo[300]={0};
	//获取时间
	char timebuff[100]={0};
	time_t ntimn;
	ntimn =time(NULL);
	strftime(timebuff,sizeof(timebuff),"%Y-%m-%d %H:%M:%S",localtime(&ntimn));

	//格式化字符串
	sprintf(strinfo,"echo \"%s  %s[%d]  %s\" >> %s",\
	timebuff,LAP_LOG_NAME,getpid(),info,LAP_LOG_PATH);
	
	ret=system(strinfo); 
	lap_errneg(ret,NULL,"lap_syslog echo err!");//错误检查
}

















#if 0	//功能测试
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


int main(void)
{
	lap_openlog("/root/project/lap/log.lap","lap");
	lap_syslog("2323 is test");
	lap_syslog("ssygassccshch");
	lap_syslog("hvvjvjjb");
	lap_syslog("vcvvv");
	
	return 0;
}
#endif







																						 
